package debut.peinture;

import java.util.Locale;

import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class FragCateg extends Fragment {
	private View principale;

	@Override
	public View onCreateView(LayoutInflater inflateur, ViewGroup container, Bundle etatSauve) {
		principale = inflateur.inflate(R.layout.fragmentcateg, container, false);
		mettreCategories();
		return principale;
	}
	
	public void mettreCategories() {
    	ListView vueListe = (ListView) principale.findViewById(R.id.lvfacts);
		CategorieAdapter monAdapteurListe = new CategorieAdapter(vueListe.getContext());
		vueListe.setAdapter(monAdapteurListe);
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, getResources().getString(R.string.tout), 0, 24, 10));
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, getResources().getStringArray(R.array.categories)[0], 0, 24, 10));
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, getResources().getStringArray(R.array.categories)[1], 0, 24, 10));
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, getResources().getStringArray(R.array.categories)[2], 0, 24, 10));
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, getResources().getStringArray(R.array.categories)[3], 0, 24, 10));
		monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, getResources().getStringArray(R.array.categories)[4], 0, 24, 10));
		((DroidPaintings)principale.getContext()).categChoisie = null;
		vueListe.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View vue, int position, long id) {
				if(((DroidPaintings)principale.getContext()).categChoisie == null) {
					if(position==0) {
						String requete = vue.getContext().getResources().getString(R.string.requetetout) + " "
											+ vue.getContext().getResources().getString(R.string.requetetoutfrom);
						((DroidPaintings)principale.getContext()).curseur = ((DroidPaintings)principale.getContext()).monDbHelper
																				.maDataBase.rawQuery(requete, null);
						rangerFragments();
//						remplirGalerie(vue.getContext());
//						((ViewAnimator) principale.findViewById(R.id.navig)).showPrevious();
//						ecranActuel = ECRAN_IMAGE;
//						findViewById(R.id.idbtnpreced).setEnabled(false);
//						if(((DroidPaintings)principale.getContext()).curseur.getCount() > 1) {
//							principale.findViewById(R.id.idbtnsuivant).setEnabled(true);
//						}
						((DroidPaintings)principale.getContext()).categChoisie = null;
						((TextView)principale.findViewById(R.id.idaffichecateg)).setText(
												((DroidPaintings)principale.getContext()).categChoisie);
					} else {
						String categ = ((CategorieDonnees)((CategorieAdapter)parent.getAdapter()).getItem(position)).getPhrase();
						((DroidPaintings)principale.getContext()).categChoisie = categ;
						((TextView)principale.findViewById(R.id.idaffichecateg)).setText(
												((DroidPaintings)principale.getContext()).categChoisie);
						ListView vueListe = (ListView) principale.findViewById(R.id.lvfacts);
						CategorieAdapter monAdapteurListe = new CategorieAdapter(vueListe.getContext());
						vueListe.setAdapter(monAdapteurListe);
						monAdapteurListe.addItem(new CategorieDonnees(R.drawable.pcateg, categ, 0, 24, 10));
						String nomattavectable = "";
						String nomattsanstable = "";
						String tables = "";
						String jointure = "";
						String langue = getResources().getConfiguration().locale.getLanguage();
						switch(position) {
						case 1:
							nomattavectable = vue.getContext().getResources().getString(R.string.colonnestyle);
							nomattsanstable = nomattavectable;
							tables = "oeuvres, peintres";
							jointure = "oeuvres.id_peintre = peintres._id";
							break;
						case 2:
//							nomatt = vue.getContext().getResources().getString(R.string.colonnepays);
//							nomatt = "pays_id";
							jointure = "oeuvres.id_peintre = peintres._id and peintres.pays_id = pays.id";
							if(langue.equals(Locale.FRENCH.getLanguage())) {
								nomattavectable = "pays.nom_fr";
								nomattsanstable = "nom_fr";
								tables = "oeuvres, peintres, pays";
							} else {
								nomattavectable = "pays.nom_en";
								nomattsanstable = "nom_en";
								tables = "oeuvres, peintres, pays";
							}
							break;
						case 3:
							nomattavectable = "nom";
							nomattsanstable = nomattavectable;
							tables = "oeuvres, peintres";
							jointure = "oeuvres.id_peintre = peintres._id";
							break;
						case 4:
							nomattavectable = "lieu";
							nomattsanstable = nomattavectable;
							tables = "oeuvres, peintres";
							jointure = "oeuvres.id_peintre = peintres._id";
							break;
						case 5:
							nomattavectable = "annee";
							nomattsanstable = nomattavectable;
							tables = "oeuvres, peintres";
							jointure = "oeuvres.id_peintre = peintres._id";
							break;
						}
						Cursor curseurCateg = ((DroidPaintings)principale.getContext()).monDbHelper.maDataBase.rawQuery(
										"select distinct " + nomattavectable + " from " + tables + " where "	+ jointure, null); 
						curseurCateg.moveToFirst();
						for(int i=0; i<curseurCateg.getCount(); i++) {
							int col = curseurCateg.getColumnIndex(nomattsanstable);
							String valeur = curseurCateg.getString(col);
							switch(position) {
							case 1:
								monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, valeur, -1, 20, 20));
								break;
							case 2:
//								Integer intval = Integer.decode(valeur);
//								monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, 
//										getResources().getStringArray(R.array.nompays)[intval],	intval, 20, 20));
								monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, valeur, -1, 20, 20));
								break;
							case 3:
								monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, valeur, -1, 20, 20));
								break;
							case 4:
								if((valeur != null) && (valeur.equals("") == false))
									monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, valeur, -1, 20, 20));
								break;
							case 5:
								monAdapteurListe.addItem(new CategorieDonnees(R.drawable.choisir, valeur, -1, 20, 20));
								break;
							}
							curseurCateg.moveToNext();
						}
					}
				} else {
					if(position > 0) {
						((DroidPaintings)principale.getContext()).valeurChoisie = ((CategorieDonnees)((CategorieAdapter)parent.getAdapter())
										.getItem(position)).getPhrase();
						((TextView)principale.findViewById(R.id.idaffichecateg))
										.setText(((DroidPaintings)principale.getContext()).categChoisie + " : " 
													+ ((DroidPaintings)principale.getContext()).valeurChoisie);
						((DroidPaintings)principale.getContext()).valeurRepChoisie = ((DroidPaintings)principale.getContext())
										.valeurChoisie.replace("'", "\\'");
						((DroidPaintings)principale.getContext()).entierChoisi = ((CategorieDonnees)((CategorieAdapter)parent.getAdapter())
										.getItem(position)).getEntier();
						String finsql = ((DroidPaintings)principale.getContext()).retournefinsql();
						((DroidPaintings)principale.getContext()).curseur = ((DroidPaintings)principale.getContext()).monDbHelper
												.maDataBase.rawQuery(vue.getContext().getResources().getString(R.string.requetetout) 
										+ finsql, null);
						rangerFragments();
			        	
//			        	ActionBar actionBar = ((Activity)principale.getContext()).getActionBar();
//			        	actionBar.setSelectedNavigationItem (0);
//						remplirGalerie(vue.getContext());
//						((ViewAnimator) findViewById(R.id.navig)).showPrevious();
//						ecranActuel = ECRAN_IMAGE;
//						if(curseur.getCount() > 1) {
//							findViewById(R.id.idbtnsuivant).setEnabled(true);
//						}
//						findViewById(R.id.idbtnpreced).setVisibility(View.VISIBLE);
//						findViewById(R.id.idbtnsuivant).setVisibility(View.VISIBLE);
//						categChoisie = null;
					}
				}
			}
		});
    }
	
	private void rangerFragments() {
		ActionBar actionBar = ((Activity)principale.getContext()).getActionBar();
		switch(actionBar.getSelectedNavigationIndex()) {
		case 0:
			Fragment fraggalerie = getFragmentManager().findFragmentById(R.id.idfraggalerie);
			((DroidPaintings)principale.getContext()).indexencours = 0;
			((FragGalerie) fraggalerie).remplirGalerie();
			break;
		case 1:
			((DroidPaintings)principale.getContext()).indexencours = -1;
			break;
		case 2:
			Fragment fraggrille = getFragmentManager().findFragmentById(R.id.idfraggrille);
			((DroidPaintings)principale.getContext()).indexencours = 0;
			((FragGrille) fraggrille).remplirGrille();
			break;
		}
		Fragment fragcateg = getFragmentManager().findFragmentById(R.id.idfragcateg);
    	FragmentTransaction ft = getFragmentManager().beginTransaction();
    	ft.hide(fragcateg);
//    	ft.show(fraggalerie);
    	ft.commit();
	}
}
